#includebitsstdc++.h
using namespace std;

int main()
{
	int m,n,k;
	cinmnk;
	int dp[m+1][n+1]={0};
	int arr[m+1][n+1];
	for(int i=1;i=m;i++)
	{
		for(int j=1;j=n;j++)
		{
			cinarr[i][j];
			dp[i][j]=dp[i-1][j]+dp[i][j-1]-dp[i-1][j-1]+arr[i][j];
		}
	}
	long long sum=0;
    for(int i=1;i=m;i++)
    {
        for(int j=i;j=m;j++)
        {
            int l=1,r;
            long long t=0;
            for(int r=1;r=n;r++)用n^2确定上下边界后再去把左右利用滑动窗口变成m，如果是确定两个点来确定子矩阵，那需要n^2m^2
            {
                t+=dp[j][r]-dp[j][r-1]-dp[i-1][r]+dp[i-1][r-1];
                while(tk)
                {
                    t-=dp[j][l]-dp[j][l-1]-dp[i-1][l]+dp[i-1][l-1];
                    l++;
                }
                sum+=r-l+1;
            }
        }
    }

	coutsum;
	
	return 0;
}